#####################################################################################################################################################
# Description: Makefile - To Compile the project programs development in C++. Each has a brief description about the function
#       Autor: Yandi Naranjo Basalo (PhD. Research)
# Institution: Group RMN (Miquel Pons Laboratory) - IRB Barcelona
# Last Change: 30-03-2012
#     Project: Project with a Prof. Miquel Pons and Prof. Robert Konrat (LINGO and MT in Complexes extracted from the PDB Database).
#####################################################################################################################################################
#  Compiler
#####################################################################################################################################################
CC           = cc
GCC          = g++
CXXFLAGS     = -g #-Wall
#####################################################################################################################################################
#  Prepare the FASTA File with Sequence from CATH Database, using the CDDF and CLF Files (The result is the FASTA File with high info in headers)
#####################################################################################################################################################

OBJECT1      = Strings.o Node.o ListE.o CathCLF.o CathCDDF.o ListCathCLF.o ListCathCDDF.o ReadCathInfo.o ConstructFastaCATHComplete.o

1: $(OBJECT1)
	$(GCC) $(OBJECT1) -o bin/ConstructFastaCATHComplete -lz
	mv *.o obj/.  

Strings.o: Strings.cpp
	$(GCC) -c Strings.cpp

Node.o: Node.cpp
	$(GCC) -c Node.cpp

ListE.o: ListE.cpp Node.o
	$(GCC) -c ListE.cpp

CathCLF.o: CathCLF.cpp ListE.o Strings.o
	$(GCC) -c CathCLF.cpp

CathCDDF.o: CathCDDF.cpp ListE.o Strings.o
	$(GCC) -c CathCDDF.cpp

ListCathCLF.o: ListCathCLF.cpp ListE.o Strings.o CathCLF.o 
	$(GCC) -c ListCathCLF.cpp

ListCathCDDF.o: ListCathCDDF.cpp ListE.o Strings.o CathCDDF.o 
	$(GCC) -c ListCathCDDF.cpp

ReadCathInfo.o: ReadCathInfo.cpp ListCathCLF.o ListCathCDDF.o
	$(GCC) -c ReadCathInfo.cpp

ConstructFastaCATHComplete.o: ConstructFastaCATHComplete.cpp ReadCathInfo.o libraries.h
	$(GCC) -c ConstructFastaCATHComplete.cpp

#####################################################################################################################################################
#  Compute the Secondary Structure using the PsiPred Program (One prediction at the time)
#####################################################################################################################################################

OBJECT2      = Strings.o Node.o ListE.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o PredictSecondaryStructure.o

2: $(OBJECT2)
	$(GCC) $(OBJECT2) -o bin/PredictSecondaryStructure -lz
	mv *.o obj/.

PsiPredProt.o: PsiPredProt.cpp ListE.o Strings.o
	$(GCC) -c PsiPredProt.cpp

CathFASTAProfile.o: CathFASTAProfile.cpp ListE.o Strings.o CathCDDF.o
	$(GCC) -c CathFASTAProfile.cpp

ProcessCathFASTAProfile.o: ProcessCathFASTAProfile.cpp PsiPredProt.o CathFASTAProfile.o
	$(GCC) -c ProcessCathFASTAProfile.cpp

PredictSecondaryStructure.o: PredictSecondaryStructure.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c PredictSecondaryStructure.cpp

#####################################################################################################################################################
#  Delete equal Sequences in the FASTA Profile of Domain File
#####################################################################################################################################################

OBJECT3      = Strings.o Node.o ListE.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o DeleteRepeatSequences.o

3: $(OBJECT3)
	$(GCC) $(OBJECT3) -o bin/DeleteRepeatSequences -lz
	mv *.o obj/.

DeleteRepeatSequences.o: DeleteRepeatSequences.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c DeleteRepeatSequences.cpp

#####################################################################################################################################################
#  Split FASTA Profile of Domain File in Small files
#####################################################################################################################################################

OBJECT4      = Strings.o Node.o ListE.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o SplitFASTAProfileFile.o

4: $(OBJECT4)
	$(GCC) $(OBJECT4) -o bin/SplitFASTAProfileFile -lz
	mv *.o obj/.

SplitFASTAProfileFile.o: SplitFASTAProfileFile.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c SplitFASTAProfileFile.cpp

#####################################################################################################################################################
#  Find incomplete predictions inside to files with shared data (FASTA Profile of Domain)
#####################################################################################################################################################

OBJECT5      = Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o FindNotCompletedPredictions.o

5: $(OBJECT5)
	$(GCC) $(OBJECT5) -o bin/FindNotCompletedPredictions -lz
	mv *.o obj/.

FindNotCompletedPredictions.o: FindNotCompletedPredictions.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c FindNotCompletedPredictions.cpp

#####################################################################################################################################################
#  Compute the LINGOsim between two files
#####################################################################################################################################################

OBJECT6      = Strings.o Node.o ListE.o LINGOsim.o

6: $(OBJECT6)
	$(GCC) $(OBJECT6) -o LINGOsim
	mv *.o obj/.

LINGOsim.o: LINGOsim.cpp libraries.h
	$(GCC) -c LINGOsim.cpp

#####################################################################################################################################################
#  Fill the Chemical and Physical Properties for each sequence in the file of FASTA Profile
#####################################################################################################################################################

OBJECT7      =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o FillChemicalPhysicalClassification.o

7: $(OBJECT7)
	$(GCC) $(OBJECT7) -o bin/FillChemicalPhysicalClassification -lz
	mv *.o obj/.

FillChemicalPhysicalClassification.o: FillChemicalPhysicalClassification.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c FillChemicalPhysicalClassification.cpp

#####################################################################################################################################################
#  Expand the information of repeated sequences inside the file of FASTA Profile 
#####################################################################################################################################################

OBJECT8      =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o ExpandRepeatSequenceFASTAProfile.o

8: $(OBJECT8)
	$(GCC) $(OBJECT8) -o bin/ExpandRepeatSequenceFASTAProfile -lz
	mv *.o obj/.

ExpandRepeatSequenceFASTAProfile.o: ExpandRepeatSequenceFASTAProfile.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c ExpandRepeatSequenceFASTAProfile.cpp

#####################################################################################################################################################
#  Write out specific information from FASTA Profile to FASTA File
#####################################################################################################################################################

OBJECT9      =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o OutInfoFromPROFILEInFASTAFormat.o

9: $(OBJECT9)
	$(GCC) $(OBJECT9) -o bin/OutInfoFromPROFILEInFASTAFormat -lz
	mv *.o obj/.

OutInfoFromPROFILEInFASTAFormat.o: OutInfoFromPROFILEInFASTAFormat.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c OutInfoFromPROFILEInFASTAFormat.cpp

#####################################################################################################################################################
#  Create the files with PDB Atom records for each Domain in FASTA Profile File
#####################################################################################################################################################

OBJECT10     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o CathPDBProfile.o DBRefRecord.o \
		SeqResRecord.o PDBSeqRes.o ProcessCathPDBProfile.o CreatePDBAtomDomain.o

10: $(OBJECT10)
	$(GCC) $(OBJECT10) -o bin/CreatePDBAtomDomain -lz
	mv *.o obj/.

DomainPDBAtom.o: DomainPDBAtom.cpp CathCDDF.o
	$(GCC) -c DomainPDBAtom.cpp

DomainPDBHetAtm.o: DomainPDBHetAtm.cpp CathCDDF.o
	$(GCC) -c DomainPDBHetAtm.cpp

SeqResRecord.o: SeqResRecord.cpp Strings.o Node.o ListE.o ConstantsPDB.h
	$(GCC) -c SeqResRecord.cpp

DBRefRecord.o: DBRefRecord.cpp Strings.o Node.o ListE.o
	$(GCC) -c DBRefRecord.cpp

PDBSeqRes.o: PDBSeqRes.cpp SeqResRecord.o
	$(GCC) -c PDBSeqRes.cpp

CathPDBProfile.o: CathPDBProfile.cpp CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o
	$(GCC) -c CathPDBProfile.cpp

ProcessCathPDBProfile.o: ProcessCathPDBProfile.cpp CathPDBProfile.o PDBSeqRes.o DBRefRecord.o
	$(GCC) -c ProcessCathPDBProfile.cpp

CreatePDBAtomDomain.o: CreatePDBAtomDomain.cpp ProcessCathPDBProfile.o libraries.h
	$(GCC) -c CreatePDBAtomDomain.cpp

#####################################################################################################################################################
#  Create the files with PDB HetAtm records for each Domain in FASTA Profile File
#####################################################################################################################################################

OBJECT11     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o CathPDBProfile.o DBRefRecord.o \
		SeqResRecord.o PDBSeqRes.o ProcessCathPDBProfile.o CreatePDBHetAtmDomain.o

11: $(OBJECT11)
	$(GCC) $(OBJECT11) -o bin/CreatePDBHetAtmDomain -lz
	mv *.o obj/.

CreatePDBHetAtmDomain.o: CreatePDBHetAtmDomain.cpp ProcessCathPDBProfile.o libraries.h
	$(GCC) -c CreatePDBHetAtmDomain.cpp

#####################################################################################################################################################
#  Create the file with Ligands and Near Residues for each Domain in a FASTA Format (Ligand FASTA Profile)
#####################################################################################################################################################

OBJECT12     =	Strings.o Node.o ListE.o HetAtmRecord.o Ligand.o ListLigand.o AtomRecord.o PDBAtom.o ContactCheck.o LigandPDBContact.o CathCLF.o \
		CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o ProcessLigandPDBContact.o RecoverInteractionInfoAtomHeAtm.o

12: $(OBJECT12)
	$(GCC) $(OBJECT12) -o bin/RecoverInteractionInfoAtomHeAtm -lz
	mv *.o obj/.

HetAtmRecord.o: HetAtmRecord.cpp Strings.o Node.o ListE.o
	$(GCC) -c HetAtmRecord.cpp

Ligand.o: Ligand.cpp HetAtmRecord.o
	$(GCC) -c Ligand.cpp

ListLigand.o: ListLigand.cpp Ligand.o
	$(GCC) -c ListLigand.cpp

AtomRecord.o: AtomRecord.cpp Strings.o Node.o ListE.o
	$(GCC) -c AtomRecord.cpp

PDBAtom.o: PDBAtom.cpp AtomRecord.o
	$(GCC) -c PDBAtom.cpp

ContactCheck.o: ContactCheck.cpp Ligand.o PDBAtom.o
	$(GCC) -c ContactCheck.cpp

LigandPDBContact.o: LigandPDBContact.cpp ListLigand.o ContactCheck.o
	$(GCC) -c LigandPDBContact.cpp

ProcessLigandPDBContact.o: ProcessLigandPDBContact.cpp LigandPDBContact.o ProcessCathFASTAProfile.o
	$(GCC) -c ProcessLigandPDBContact.cpp

RecoverInteractionInfoAtomHeAtm.o: RecoverInteractionInfoAtomHeAtm.cpp ProcessLigandPDBContact.o libraries.h
	$(GCC) -c RecoverInteractionInfoAtomHeAtm.cpp

#####################################################################################################################################################
#  Select the domain with Ligands and Near Residues from a Ligand FASTA Format (Ligand FASTA Profile)
#####################################################################################################################################################

OBJECT13     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SelectDomainWithLigandInLigandFASTAProfile.o

13: $(OBJECT13)
	$(GCC) $(OBJECT13) -o bin/SelectDomainWithLigandInLigandFASTAProfile -lz
	mv *.o obj/.

LigandNearResidues.o: LigandNearResidues.cpp Strings.o Node.o ListE.o
	$(GCC) -c LigandNearResidues.cpp

BindingInfo.o: BindingInfo.cpp LigandNearResidues.o CathCDDF.o
	$(GCC) -c BindingInfo.cpp

ProcessBindingFASTAProfile.o: ProcessBindingFASTAProfile.cpp BindingInfo.o
	$(GCC) -c ProcessBindingFASTAProfile.cpp

SelectDomainWithLigandInLigandFASTAProfile.o: SelectDomainWithLigandInLigandFASTAProfile.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c SelectDomainWithLigandInLigandFASTAProfile.cpp

#####################################################################################################################################################
#  Filtering the residues appearing as ligands in a Ligand FASTA Format File (Ligand FASTA Profile)
#####################################################################################################################################################

OBJECT14     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o FilterResiduesAppearAsLigandInLigandFASTAProfile.o

14: $(OBJECT14)
	$(GCC) $(OBJECT14) -o bin/FilterResiduesAppearAsLigandInLigandFASTAProfile -lz
	mv *.o obj/.

FilterResiduesAppearAsLigandInLigandFASTAProfile.o: FilterResiduesAppearAsLigandInLigandFASTAProfile.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c FilterResiduesAppearAsLigandInLigandFASTAProfile.cpp

#####################################################################################################################################################
#  Extract the Data of residues near to ligands separated in Intra-Domain and Inter-Domain
#####################################################################################################################################################

OBJECT15     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o ExtractSeparatedBindingDataInterAndIntraDomains.o

15: $(OBJECT15)
	$(GCC) $(OBJECT15) -o bin/ExtractSeparatedBindingDataInterAndIntraDomains -lz
	mv *.o obj/.

ExtractSeparatedBindingDataInterAndIntraDomains.o: ExtractSeparatedBindingDataInterAndIntraDomains.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c ExtractSeparatedBindingDataInterAndIntraDomains.cpp

#####################################################################################################################################################
#  Split the data information by Ligands
#####################################################################################################################################################

OBJECT16     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SplitInFilesBindingDataByLigand.o

16: $(OBJECT16)
	$(GCC) $(OBJECT16) -o bin/SplitInFilesBindingDataByLigand -lz
	mv *.o obj/.

SplitInFilesBindingDataByLigand.o: SplitInFilesBindingDataByLigand.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c SplitInFilesBindingDataByLigand.cpp

#####################################################################################################################################################
#  Create the continuous profile for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT17     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousDataForBindingRegion.o

17: $(OBJECT17)
	$(GCC) $(OBJECT17) -o bin/GetContinuousDataForBindingRegion -lz
	mv *.o obj/.

BindingInfoCathFASTAProfile.o: BindingInfoCathFASTAProfile.cpp BindingInfo.o CathFASTAProfile.o
	$(GCC) -c BindingInfoCathFASTAProfile.cpp

CandidateDBForPGSearch.o: CandidateDBForPGSearch.cpp BindingInfoCathFASTAProfile.o
	$(GCC) -c CandidateDBForPGSearch.cpp

GetContinuousDataForBindingRegion.o: GetContinuousDataForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousDataForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous sequence for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT18     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousSeqForBindingRegion.o

18: $(OBJECT18)
	$(GCC) $(OBJECT18) -o bin/GetContinuousSeqForBindingRegion -lz
	mv *.o obj/.

GetContinuousSeqForBindingRegion.o: GetContinuousSeqForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousSeqForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous secondary structure for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT19     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousSSForBindingRegion.o

19: $(OBJECT19)
	$(GCC) $(OBJECT19) -o bin/GetContinuousSSForBindingRegion -lz
	mv *.o obj/.

GetContinuousSSForBindingRegion.o: GetContinuousSSForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousSSForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous chemical classification for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT20     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousCHForBindingRegion.o

20: $(OBJECT20)
	$(GCC) $(OBJECT20) -o bin/GetContinuousCHForBindingRegion -lz
	mv *.o obj/.

GetContinuousCHForBindingRegion.o: GetContinuousCHForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousCHForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous physical classification for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT21     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousPHForBindingRegion.o

21: $(OBJECT21)
	$(GCC) $(OBJECT21) -o bin/GetContinuousPHForBindingRegion -lz
	mv *.o obj/.

GetContinuousPHForBindingRegion.o: GetContinuousPHForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousPHForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous meta structure for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT22     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousMTForBindingRegion.o

22: $(OBJECT22)
	$(GCC) $(OBJECT22) -o bin/GetContinuousMTForBindingRegion -lz
	mv *.o obj/.

GetContinuousMTForBindingRegion.o: GetContinuousMTForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousMTForBindingRegion.cpp

#####################################################################################################################################################
#  Create the continuous sequence (ALL) for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT23     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetContinuousAllForBindingRegion.o

23: $(OBJECT23)
	$(GCC) $(OBJECT23) -o bin/GetContinuousAllForBindingRegion -lz
	mv *.o obj/.

GetContinuousAllForBindingRegion.o: GetContinuousAllForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetContinuousAllForBindingRegion.cpp

#####################################################################################################################################################
#  Get the frequency of each residue in a data profile file
#####################################################################################################################################################

OBJECT24      =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o GetFrequencyOfResidues.o

24: $(OBJECT24)
	$(GCC) $(OBJECT24) -o bin/GetFrequencyOfResidues -lz
	mv *.o obj/.

GetFrequencyOfResidues.o: GetFrequencyOfResidues.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c GetFrequencyOfResidues.cpp

#####################################################################################################################################################
#  Get the frequency of length for the segment of residues near to the ligand
#####################################################################################################################################################

OBJECT25      =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o PsiPredProt.o ProcessCathFASTAProfile.o GetFrequencyOfLength.o

25: $(OBJECT25)
	$(GCC) $(OBJECT25) -o bin/GetFrequencyOfLength -lz
	mv *.o obj/.

GetFrequencyOfLength.o: GetFrequencyOfLength.cpp ProcessCathFASTAProfile.o libraries.h
	$(GCC) -c GetFrequencyOfLength.cpp

#####################################################################################################################################################
#  Select the domain with Ligands and Near Residues from a Ligand FASTA Format (Ligand FASTA Profile)
#####################################################################################################################################################

OBJECT26     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o DeleteInLigandFASTAProfileDuplication.o

26: $(OBJECT26)
	$(GCC) $(OBJECT26) -o bin/DeleteInLigandFASTAProfileDuplication -lz
	mv *.o obj/.

DeleteInLigandFASTAProfileDuplication.o: DeleteInLigandFASTAProfileDuplication.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c DeleteInLigandFASTAProfileDuplication.cpp

#####################################################################################################################################################
#  Recover the complete sequences from the PDB files for each domain (The result is a fasta file with the same header of domain profile)
#####################################################################################################################################################

OBJECT27     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o CathPDBProfile.o DBRefRecord.o \
		SeqResRecord.o PDBSeqRes.o ProcessCathPDBProfile.o CreateSeqFASTAComplete.o

27: $(OBJECT27)
	$(GCC) $(OBJECT27) -o bin/CreateSeqFASTAComplete -lz
	mv *.o obj/.

CreateSeqFASTAComplete.o: CreateSeqFASTAComplete.cpp ProcessCathPDBProfile.o libraries.h 
	$(GCC) -c CreateSeqFASTAComplete.cpp

#####################################################################################################################################################
#  Recover the complete sequences from the PDB files for each domain (The result is a fasta file with the same header of domain profile)
#####################################################################################################################################################

OBJECT28     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o CathPDBProfile.o DBRefRecord.o \
		SeqResRecord.o PDBSeqRes.o ProcessCathPDBProfile.o CreateSeqFASTACompleteWithHeaders.o

28: $(OBJECT28)
	$(GCC) $(OBJECT28) -o bin/CreateSeqFASTACompleteWithHeaders -lz
	mv *.o obj/.

CreateSeqFASTACompleteWithHeaders.o: CreateSeqFASTACompleteWithHeaders.cpp ProcessCathPDBProfile.o libraries.h 
	$(GCC) -c CreateSeqFASTACompleteWithHeaders.cpp

#####################################################################################################################################################
#  Recover the complete sequences from the PDB files for each domain (The result is a fasta file with the same header of domain profile)
#####################################################################################################################################################

OBJECT29     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o CathFASTAProfile.o DomainPDBAtom.o DomainPDBHetAtm.o CathPDBProfile.o DBRefRecord.o \
		SeqResRecord.o PDBSeqRes.o ProcessCathPDBProfile.o CreateSeqFASTAInitialPosCompleteUsingHeaders.o

29: $(OBJECT29)
	$(GCC) $(OBJECT29) -o bin/CreateSeqFASTAInitialPosCompleteUsingHeaders -lz
	mv *.o obj/.

CreateSeqFASTAInitialPosCompleteUsingHeaders.o: CreateSeqFASTAInitialPosCompleteUsingHeaders.cpp ProcessCathPDBProfile.o libraries.h 
	$(GCC) -c CreateSeqFASTAInitialPosCompleteUsingHeaders.cpp

#####################################################################################################################################################
#  Create the continuous extended sequence (ALL) for the binding region using the residues in the Binding Profile
#####################################################################################################################################################

OBJECT30     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o CathFASTAProfile.o BindingInfoCathFASTAProfile.o \
		CandidateDBForPGSearch.o GetExtendedAllForBindingRegion.o

30: $(OBJECT30)
	$(GCC) $(OBJECT30) -o bin/GetExtendedAllForBindingRegion -lz
	mv *.o obj/.

GetExtendedAllForBindingRegion.o: GetExtendedAllForBindingRegion.cpp CandidateDBForPGSearch.o libraries.h
	$(GCC) -c GetExtendedAllForBindingRegion.cpp

#####################################################################################################################################################
#  Extract the PDB files (HetAtm coordinates) for only the ligands in a list
#####################################################################################################################################################

OBJECT31     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o HetAtmRecord.o Ligand.o ListLigand.o LigandNearResidues.o BindingInfo.o \
		ProcessBindingFASTAProfile.o LigandPDBFilter.o ExtractLigandPDBFileByList.o

31: $(OBJECT31)
	$(GCC) $(OBJECT31) -o bin/ExtractLigandPDBFileByList -lz
	mv *.o obj/.

LigandPDBFilter.o: LigandPDBFilter.cpp ProcessBindingFASTAProfile.o ListLigand.o
	$(GCC) -c LigandPDBFilter.cpp

ExtractLigandPDBFileByList.o: ExtractLigandPDBFileByList.cpp LigandPDBFilter.o libraries.h
	$(GCC) -c ExtractLigandPDBFileByList.cpp

#####################################################################################################################################################
#  Compute the LingoSim Matrix with output for epitopes
#####################################################################################################################################################

OBJECT32     =	Strings.o Node.o ListE.o SMIData.o LigandEpitopeData.o LigandEpitopeCompare.o ComputeLingoSimLigandEpitope.o

32: $(OBJECT32)
	$(GCC) $(OBJECT32) -o bin/ComputeLingoSimLigandEpitope -lz
	mv *.o obj/.

SMIData.o: SMIData.cpp Strings.o Node.o ListE.o
	$(GCC) -c SMIData.cpp

LigandEpitopeData.o: LigandEpitopeData.cpp Strings.o Node.o ListE.o
	$(GCC) -c LigandEpitopeData.cpp

LigandEpitopeCompare.o: LigandEpitopeCompare.cpp SMIData.o LigandEpitopeData.o
	$(GCC) -c LigandEpitopeCompare.cpp

ComputeLingoSimLigandEpitope.o: ComputeLingoSimLigandEpitope.cpp LigandEpitopeCompare.o libraries.h
	$(GCC) -c ComputeLingoSimLigandEpitope.cpp

#####################################################################################################################################################
#  Create the Matrix with Epitope Alignment using the order of SMI input file - High Epitope Alignment
#####################################################################################################################################################

OBJECT33     =	Strings.o Node.o ListE.o LigandEpitopeAlignment.o ListLigandEpitopeAlignment.o PlotEpitopeAligmentUsingLSIMMatrix.o

33: $(OBJECT33)
	$(GCC) $(OBJECT33) -o bin/PlotEpitopeAligmentUsingLSIMMatrix -lz
	mv *.o obj/.

LigandEpitopeAlignment.o: LigandEpitopeAlignment.cpp Strings.o Node.o ListE.o
	$(GCC) -c LigandEpitopeAlignment.cpp

ListLigandEpitopeAlignment.o: ListLigandEpitopeAlignment.cpp LigandEpitopeAlignment.o
	$(GCC) -c ListLigandEpitopeAlignment.cpp

PlotEpitopeAligmentUsingLSIMMatrix.o: PlotEpitopeAligmentUsingLSIMMatrix.cpp ListLigandEpitopeAlignment.o libraries.h
	$(GCC) -c PlotEpitopeAligmentUsingLSIMMatrix.cpp

#####################################################################################################################################################
#  Create the Matrix with Epitope Alignment using the order of SMI input file - Average Epitope Alignment
#####################################################################################################################################################

OBJECT34     =	Strings.o Node.o ListE.o LigandEpitopeAlignment.o ListLigandEpitopeAlignment.o PlotAverageEpitopeAligmentUsingLSIMMatrix.o

34: $(OBJECT34)
	$(GCC) $(OBJECT34) -o bin/PlotAverageEpitopeAligmentUsingLSIMMatrix -lz
	mv *.o obj/.

PlotAverageEpitopeAligmentUsingLSIMMatrix.o: PlotAverageEpitopeAligmentUsingLSIMMatrix.cpp ListLigandEpitopeAlignment.o libraries.h
	$(GCC) -c PlotAverageEpitopeAligmentUsingLSIMMatrix.cpp

#####################################################################################################################################################
#  Create the Matrix with Epitope Alignment using the order of SMI input file - Average Epitope Alignment
#####################################################################################################################################################

OBJECT35     =	Strings.o Node.o ListE.o ExtractPDBInfo.o ExtractPDBOnlyAlphaBetaCarbons.o

35: $(OBJECT35)
	$(GCC) $(OBJECT35) -o bin/ExtractPDBOnlyAlphaBetaCarbons -lz
	mv *.o obj/.

ExtractPDBInfo.o: ExtractPDBInfo.cpp Strings.o Node.o ListE.o
	$(GCC) -c ExtractPDBInfo.cpp

ExtractPDBOnlyAlphaBetaCarbons.o: ExtractPDBOnlyAlphaBetaCarbons.cpp ExtractPDBInfo.o libraries.h
	$(GCC) -c ExtractPDBOnlyAlphaBetaCarbons.cpp

#####################################################################################################################################################
#  Pipe program used to compute the patterns in the amino acid sequence of epitopes for equal ligand
#####################################################################################################################################################

OBJECT36      = Strings.o Node.o ListE.o PipeProcessGetPatternsFromCATH.o

36: $(OBJECT36)
	$(GCC) $(OBJECT36) -o bin/PipeProcessGetPatternsFromCATH -lz
	mv *.o obj/.

PipeProcessGetPatternsFromCATH.o: PipeProcessGetPatternsFromCATH.cpp libraries.h
	$(GCC) -c PipeProcessGetPatternsFromCATH.cpp

#####################################################################################################################################################
#  Create the file with patterns (Pratt 2.1), in a compact way inside a file
#####################################################################################################################################################

OBJECT37      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o CompactPatternsFiles.o

37: $(OBJECT37)
	$(GCC) $(OBJECT37) -o bin/CompactPatternsFiles -lz
	mv *.o obj/.

PatternRecord.o: PatternRecord.cpp Strings.o Node.o ListE.o
	$(GCC) -c PatternRecord.cpp

PatternMatches.o: PatternMatches.cpp Strings.o Node.o ListE.o
	$(GCC) -c PatternMatches.cpp

Pratt2Patterns.o: Pratt2Patterns.cpp PatternRecord.o PatternMatches.o
	$(GCC) -c Pratt2Patterns.cpp

Pratt2PatternsByCATH.o: Pratt2PatternsByCATH.cpp Pratt2Patterns.o
	$(GCC) -c Pratt2PatternsByCATH.cpp

CompactPatternsFiles.o: CompactPatternsFiles.cpp Pratt2PatternsByCATH.o
	$(GCC) -c CompactPatternsFiles.cpp

#####################################################################################################################################################
#  Get the Conditional Probability that an specific pattern belong to the given class known that appear in a sequence
#####################################################################################################################################################

OBJECT38      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o GetCondProbabilityPrattPattern.o

38: $(OBJECT38)
	$(GCC) $(OBJECT38) -o bin/GetCondProbabilityPrattPattern -lz
	mv *.o obj/.

GetCondProbabilityPrattPattern.o: GetCondProbabilityPrattPattern.cpp Pratt2PatternsByCATH.o
	$(GCC) -c GetCondProbabilityPrattPattern.cpp

#####################################################################################################################################################
#  Search the input PROSITE pattern in the input sequence
#####################################################################################################################################################

OBJECT39      = Strings.o Node.o ListE.o SearchPrositePattern.o SearchPrositePatternInSequence.o

39: $(OBJECT39)
	$(GCC) $(OBJECT39) -o bin/SearchPrositePatternInSequence -lz
	mv *.o obj/.

SearchPrositePattern.o: SearchPrositePattern.cpp Strings.o Node.o ListE.o
	$(GCC) -c SearchPrositePattern.cpp

SearchPrositePatternInSequence.o: SearchPrositePatternInSequence.cpp SearchPrositePattern.o
	$(GCC) -c SearchPrositePatternInSequence.cpp

#####################################################################################################################################################
#  Computing the probability of patterns to identify the sequences that bind a specific ligand
#####################################################################################################################################################

OBJECT40      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		PatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o ComputeProbabilityOfPatternIdentifyBS.o

40: $(OBJECT40)
	$(GCC) $(OBJECT40) -o bin/ComputeProbabilityOfPatternIdentifyBS -lz
	mv *.o obj/.

PatternsCathFASTAProfile.o: PatternsCathFASTAProfile.cpp SearchPrositePattern.o Pratt2PatternsByCATH.o
	$(GCC) -c PatternsCathFASTAProfile.cpp

ComputeProbabilityOfPatternIdentifyBS.o: ComputeProbabilityOfPatternIdentifyBS.cpp PatternsCathFASTAProfile.o
	$(GCC) -c ComputeProbabilityOfPatternIdentifyBS.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File
#####################################################################################################################################################

OBJECT41      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		PatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o CreateARFFFileWithCompactPatternFile.o

41: $(OBJECT41)
	$(GCC) $(OBJECT41) -o bin/CreateARFFFileWithCompactPatternFile -lz
	mv *.o obj/.

CreateARFFFileWithCompactPatternFile.o: CreateARFFFileWithCompactPatternFile.cpp PatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFFileWithCompactPatternFile.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File
#####################################################################################################################################################

OBJECT42      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		PatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o CreateARFFNominalFileWithCompactPatternFile.o

42: $(OBJECT42)
	$(GCC) $(OBJECT42) -o bin/CreateARFFNominalFileWithCompactPatternFile -lz
	mv *.o obj/.

CreateARFFNominalFileWithCompactPatternFile.o: CreateARFFNominalFileWithCompactPatternFile.cpp PatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFNominalFileWithCompactPatternFile.cpp

#####################################################################################################################################################
#  Compute the common LINGOs in epitopes alignments
#####################################################################################################################################################

OBJECT43     =	Strings.o Node.o ListE.o SMIData.o LigandEpitopeData.o LigandEpitopeDataLINGO.o ProcessEpitopesAndLINGOs.o GetCommonLINGOsForEpitopes.o

43: $(OBJECT43)
	$(GCC) $(OBJECT43) -o bin/GetCommonLINGOsForEpitopes -lz
	mv *.o obj/.

LigandEpitopeDataLINGO.o: LigandEpitopeDataLINGO.cpp SMIData.o LigandEpitopeData.o
	$(GCC) -c LigandEpitopeDataLINGO.cpp

ProcessEpitopesAndLINGOs.o: ProcessEpitopesAndLINGOs.cpp LigandEpitopeDataLINGO.o
	$(GCC) -c ProcessEpitopesAndLINGOs.cpp

GetCommonLINGOsForEpitopes.o: GetCommonLINGOsForEpitopes.cpp ProcessEpitopesAndLINGOs.o libraries.h
	$(GCC) -c GetCommonLINGOsForEpitopes.cpp

#####################################################################################################################################################
#  Compute how often is a combination of some LINGOs for epitopes
#####################################################################################################################################################

OBJECT44     =	Strings.o Node.o ListE.o SMIData.o LigandEpitopeData.o LigandEpitopeDataLINGO.o ProcessEpitopesAndLINGOs.o HowOftenCombinationLINGOSEpitopes.o

44: $(OBJECT44)
	$(GCC) $(OBJECT44) -o bin/HowOftenCombinationLINGOSEpitopes -lz
	mv *.o obj/.

HowOftenCombinationLINGOSEpitopes.o: HowOftenCombinationLINGOSEpitopes.cpp ProcessEpitopesAndLINGOs.o libraries.h
	$(GCC) -c HowOftenCombinationLINGOSEpitopes.cpp

#####################################################################################################################################################
#  Pipe program used to compute the patterns in the sequences (CH, PH, MT, SS) of epitopes for equal ligand
#####################################################################################################################################################

OBJECT45      = Strings.o Node.o ListE.o PipeProcessGetPatternsFromCATHSSCHPHMT.o

45: $(OBJECT45)
	$(GCC) $(OBJECT45) -o bin/PipeProcessGetPatternsFromCATHSSCHPHMT -lz
	mv *.o obj/.

PipeProcessGetPatternsFromCATHSSCHPHMT.o: PipeProcessGetPatternsFromCATHSSCHPHMT.cpp libraries.h
	$(GCC) -c PipeProcessGetPatternsFromCATHSSCHPHMT.cpp

#####################################################################################################################################################
#  Pipe program used to compact the patterns in the sequences (CH, PH, MT, SS) of epitopes for equal ligand
#####################################################################################################################################################

OBJECT46      = Strings.o Node.o ListE.o PipeProcessCompactPatternFiles.o

46: $(OBJECT46)
	$(GCC) $(OBJECT46) -o bin/PipeProcessCompactPatternFiles -lz
	mv *.o obj/.

PipeProcessCompactPatternFiles.o: PipeProcessCompactPatternFiles.cpp libraries.h
	$(GCC) -c PipeProcessCompactPatternFiles.cpp

#####################################################################################################################################################
#  Pipe program used to compute the specificity
#####################################################################################################################################################

OBJECT47      = Strings.o Node.o ListE.o PipeProcessComputeSpecificityOfPattern.o

47: $(OBJECT47)
	$(GCC) $(OBJECT47) -o bin/PipeProcessComputeSpecificityOfPattern -lz
	mv *.o obj/.

PipeProcessComputeSpecificityOfPattern.o: PipeProcessComputeSpecificityOfPattern.cpp libraries.h
	$(GCC) -c PipeProcessComputeSpecificityOfPattern.cpp

#####################################################################################################################################################
#  Plot the Conditional Probability to given a pattern that belong to specific class the protein that contain the pattern belong to the same class
#####################################################################################################################################################

OBJECT48      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o gnuplot.o PlotPatternsParameters.o \
		PlotPatternConditionalProbability.o

48: $(OBJECT48)
	$(GCC) $(OBJECT48) -o bin/PlotPatternConditionalProbability -lz
	mv *.o obj/.

gnuplot.o: gnuplot.cpp 
	$(GCC) -c gnuplot.cpp -lgplot

PlotPatternsParameters.o: PlotPatternsParameters.cpp Pratt2PatternsByCATH.o gnuplot.o
	$(GCC) -c PlotPatternsParameters.cpp

PlotPatternConditionalProbability.o: PlotPatternConditionalProbability.cpp Pratt2PatternsByCATH.o gnuplot.o libraries.h
	$(GCC) -c PlotPatternConditionalProbability.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File
#####################################################################################################################################################

OBJECT49      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o PatternsCathFASTAProfile.o \
		CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o CreateARFFBinaryFileWithCompactPatternFile.o

49: $(OBJECT49)
	$(GCC) $(OBJECT49) -o bin/CreateARFFBinaryFileWithCompactPatternFile -lz
	mv *.o obj/.

CreateARFFBinaryFileWithCompactPatternFile.o: CreateARFFBinaryFileWithCompactPatternFile.cpp PatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFBinaryFileWithCompactPatternFile.cpp

#####################################################################################################################################################
#  Program to launch process read in on input file (useful to create pipe of process dynamically)
#####################################################################################################################################################

OBJECT50      = ScheduleQueueForkProcess.o 

50: $(OBJECT50)
	$(GCC) $(OBJECT50) -o bin/ScheduleQueueForkProcess
	mv *.o obj/.

ScheduleQueueForkProcess.o: ScheduleQueueForkProcess.cpp
	$(GCC) -c ScheduleQueueForkProcess.cpp

#####################################################################################################################################################
#  Save in file the attributes selected by Weka (Input file - Buffer of Result)
#####################################################################################################################################################

OBJECT51      = Strings.o Node.o ListE.o WekaLoadAttributeSelectionBuffer.o LoadAttributesFromWekaFile.o

51: $(OBJECT51)
	$(GCC) $(OBJECT51) -o bin/LoadAttributesFromWekaFile
	mv *.o obj/.

WekaLoadAttributeSelectionBuffer.o: WekaLoadAttributeSelectionBuffer.cpp ListE.o
	$(GCC) -c WekaLoadAttributeSelectionBuffer.cpp

LoadAttributesFromWekaFile.o: LoadAttributesFromWekaFile.cpp WekaLoadAttributeSelectionBuffer.o
	$(GCC) -c LoadAttributesFromWekaFile.cpp

#####################################################################################################################################################
#  Create a class from a prototype
#####################################################################################################################################################

OBJECT52      = Strings.o Node.o ListE.o MakeCPPClass.o CreateNewClass.o

52: $(OBJECT52)
	$(GCC) $(OBJECT52) -o bin/CreateNewClass
	mv *.o obj/.

MakeCPPClass.o: MakeCPPClass.cpp ListE.o
	$(GCC) -c MakeCPPClass.cpp

CreateNewClass.o: CreateNewClass.cpp MakeCPPClass.o
	$(GCC) -c CreateNewClass.cpp

#####################################################################################################################################################
#  Save in file the attributes selected by Weka (Input file - Buffer of Result)
#####################################################################################################################################################

OBJECT53      = Strings.o Node.o ListE.o ArffPatternRecord.o ArffAttributeSelection.o StoreSelectedFeatureTogether.o

53: $(OBJECT53)
	$(GCC) $(OBJECT53) -o bin/StoreSelectedFeatureTogether
	mv *.o obj/.

ArffPatternRecord.o: ArffPatternRecord.cpp ListE.o
	$(GCC) -c ArffPatternRecord.cpp

ArffAttributeSelection.o: ArffAttributeSelection.cpp ArffPatternRecord.o
	$(GCC) -c ArffAttributeSelection.cpp

StoreSelectedFeatureTogether.o: StoreSelectedFeatureTogether.cpp ArffAttributeSelection.o
	$(GCC) -c StoreSelectedFeatureTogether.cpp

#####################################################################################################################################################
#  Create an automatic command to delete from ARFF file the 
#####################################################################################################################################################

OBJECT54      = Strings.o Node.o ListE.o ArffPatternRecord.o ArffAttributeSelection.o CreateCommandWekaRemoveAttr.o

54: $(OBJECT54)
	$(GCC) $(OBJECT54) -o bin/CreateCommandWekaRemoveAttr
	mv *.o obj/.

CreateCommandWekaRemoveAttr.o: CreateCommandWekaRemoveAttr.cpp ArffAttributeSelection.o
	$(GCC) -c CreateCommandWekaRemoveAttr.cpp

#####################################################################################################################################################
#  Loading a classifier obtained by Weka (Classifier) to create a XML file with the model's information
#####################################################################################################################################################

OBJECT55      = Strings.o Node.o ListE.o StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o ModelTotalResults.o LoadModelResult.o

55: $(OBJECT55)
	$(GCC) $(OBJECT55) -o bin/LoadModelResult 
	mv *.o obj/.

ModelDetailAccuracy.o: ModelDetailAccuracy.cpp ListE.o
	$(GCC) -c ModelDetailAccuracy.cpp

StringUtilities.o: StringUtilities.cpp
	$(GCC) -c StringUtilities.cpp

ModelDetailStatistic.o: ModelDetailStatistic.cpp ModelDetailAccuracy.o StringUtilities.o
	$(GCC) -c ModelDetailStatistic.cpp
	
ModelTotalResults.o: ModelTotalResults.cpp ModelDetailStatistic.o StringUtilities.o 
	$(GCC) -c ModelTotalResults.cpp 

LoadModelResult.o: LoadModelResult.cpp ModelTotalResults.o StringUtilities.o
	$(GCC) -c LoadModelResult.cpp

#####################################################################################################################################################
#  Split the Ligand FASTA Profile into files using a percentage input value
#####################################################################################################################################################

OBJECT56     =	Strings.o Node.o ListE.o CathCLF.o CathCDDF.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SplitLigandFASTAProfileInto2Sets.o

56: $(OBJECT56)
	$(GCC) $(OBJECT56) -o bin/SplitLigandFASTAProfileInto2Sets -lz
	mv *.o obj/.

SplitLigandFASTAProfileInto2Sets.o: SplitLigandFASTAProfileInto2Sets.cpp ProcessBindingFASTAProfile.o libraries.h
	$(GCC) -c SplitLigandFASTAProfileInto2Sets.cpp

#####################################################################################################################################################
#  Adding a new classifier result into a XML file (Model generated by Weka (Classifier))
#####################################################################################################################################################

OBJECT57      = Strings.o Node.o ListE.o StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o ModelTotalResults.o ModelsSummaryByLigand.o AddModelResult.o

57: $(OBJECT57)
	$(GCC) $(OBJECT57) -o bin/AddModelResult 
	mv *.o obj/.

ModelsSummaryByLigand.o: ModelsSummaryByLigand.cpp ModelTotalResults.o StringUtilities.o 
	$(GCC) -c ModelsSummaryByLigand.cpp 

AddModelResult.o: AddModelResult.cpp ModelsSummaryByLigand.o StringUtilities.o
	$(GCC) -c AddModelResult.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File - Combined
#####################################################################################################################################################

OBJECT58      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o PatternsCathFASTAProfile.o \
		CombinedPatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o ProcessCathFASTAProfile.o CreateARFFFileWithCompactPatternCombinedFile.o

58: $(OBJECT58)
	$(GCC) $(OBJECT58) -o bin/CreateARFFFileWithCompactPatternCombinedFile -lz
	mv *.o obj/.

CombinedPatternsCathFASTAProfile.o: CombinedPatternsCathFASTAProfile.cpp PatternsCathFASTAProfile.o SearchPrositePattern.o Pratt2PatternsByCATH.o
	$(GCC) -c CombinedPatternsCathFASTAProfile.cpp

CreateARFFFileWithCompactPatternCombinedFile.o: CreateARFFFileWithCompactPatternCombinedFile.cpp CombinedPatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFFileWithCompactPatternCombinedFile.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File - Complete
#####################################################################################################################################################

OBJECT59      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		PatternsCathFASTAProfile.o CombinedPatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o      \
		ProcessCathFASTAProfile.o CreateARFFFileWithCompactPatternCompleteFile.o

59: $(OBJECT59)
	$(GCC) $(OBJECT59) -o bin/CreateARFFFileWithCompactPatternCompleteFile -lz
	mv *.o obj/.

CreateARFFFileWithCompactPatternCompleteFile.o: CreateARFFFileWithCompactPatternCompleteFile.cpp CombinedPatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFFileWithCompactPatternCompleteFile.cpp

#####################################################################################################################################################
#  Create ARFF File (Weka) using the Compact Pattern File - Complete + Combined
#####################################################################################################################################################

OBJECT60      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		PatternsCathFASTAProfile.o CombinedPatternsCathFASTAProfile.o CathCLF.o CathCDDF.o PsiPredProt.o CathFASTAProfile.o      \
		ProcessCathFASTAProfile.o CreateARFFFileWithCompactPatternCompleteCombinedFile.o

60: $(OBJECT60)
	$(GCC) $(OBJECT60) -o bin/CreateARFFFileWithCompactPatternCompleteCombinedFile -lz
	mv *.o obj/.

CreateARFFFileWithCompactPatternCompleteCombinedFile.o: CreateARFFFileWithCompactPatternCompleteCombinedFile.cpp CombinedPatternsCathFASTAProfile.o
	$(GCC) -c CreateARFFFileWithCompactPatternCompleteCombinedFile.cpp

#####################################################################################################################################################
#  Compute the similarity between different patterns profile files (Output - Matrix Similarity)
#####################################################################################################################################################

OBJECT61      = Strings.o Node.o ListE.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o SearchPrositePattern.o \
		ComparePratt2PatternsByCATH.o ComputePatternProfileSimilarity.o

61: $(OBJECT61)
	$(GCC) $(OBJECT61) -o bin/ComputePatternProfileSimilarity -lz
	mv *.o obj/.
	
ComparePratt2PatternsByCATH.o: ComparePratt2PatternsByCATH.cpp SearchPrositePattern.o Pratt2PatternsByCATH.o
	$(GCC) -c ComparePratt2PatternsByCATH.cpp

ComputePatternProfileSimilarity.o: ComputePatternProfileSimilarity.cpp ComparePratt2PatternsByCATH.o
	$(GCC) -c ComputePatternProfileSimilarity.cpp

#####################################################################################################################################################
#  Localize the Binding Site using the patterns obtained by anchor residues
#####################################################################################################################################################

OBJECT62      = Strings.o Node.o ListE.o PsiPredProt.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o \
		CathCLF.o CathCDDF.o CathFASTAProfile.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o            \
		PredictBindingSiteByPattern.o ListBindingSitePrediction.o LocalizeBindingSiteByPatterns.o

62: $(OBJECT62)
	$(GCC) $(OBJECT62) -o bin/LocalizeBindingSiteByPatterns -lz
	mv *.o obj/.
	
PredictBindingSiteByPattern.o: PredictBindingSiteByPattern.cpp libraries.h
	$(GCC) -c PredictBindingSiteByPattern.cpp

ListBindingSitePrediction.o:  ListBindingSitePrediction.cpp PredictBindingSiteByPattern.o SearchPrositePattern.o ProcessBindingFASTAProfile.o Pratt2PatternsByCATH.o \
			      ProcessCathFASTAProfile.o
	$(GCC) -c ListBindingSitePrediction.cpp

LocalizeBindingSiteByPatterns.o: LocalizeBindingSiteByPatterns.cpp ListBindingSitePrediction.o
	$(GCC) -c LocalizeBindingSiteByPatterns.cpp

#####################################################################################################################################################
#  Plot the identification probability per residue of the patterns model library to predict the binding site
#####################################################################################################################################################

OBJECT63      = Strings.o Node.o ListE.o gnuplot.o PredictBindingSiteByPattern.o PlotPredictBindingSite.o PlotResultPredictionBindingSitePos.o

63: $(OBJECT63)
	$(GCC) $(OBJECT63) -o bin/PlotResultPredictionBindingSitePos -lz
	mv *.o obj/.

PlotPredictBindingSite.o: PlotPredictBindingSite.cpp gnuplot.o PredictBindingSiteByPattern.o
	$(GCC) -c PlotPredictBindingSite.cpp

PlotResultPredictionBindingSitePos.o: PlotResultPredictionBindingSitePos.cpp PlotPredictBindingSite.o gnuplot.o libraries.h
	$(GCC) -c PlotResultPredictionBindingSitePos.cpp

#####################################################################################################################################################
#  Create the reports obtained from the models (xml file) for each ligand -> Tables CSV & Tables Latex
#####################################################################################################################################################

OBJECT64      = Strings.o Node.o ListE.o ModelDetailAccuracy.o StringUtilities.o ModelDetailStatistic.o ModelTotalResults.o ModelsSummaryByLigand.o \
		ModelsReports.o DesignReportsOfModelsByLigand.o

64: $(OBJECT64)
	$(GCC) $(OBJECT64) -o bin/DesignReportsOfModelsByLigand -lz
	mv *.o obj/.

ModelsReports.o: ModelsReports.cpp ModelsSummaryByLigand.o
	$(GCC) -c ModelsReports.cpp

DesignReportsOfModelsByLigand.o: DesignReportsOfModelsByLigand.cpp ModelsReports.o libraries.h
	$(GCC) -c DesignReportsOfModelsByLigand.cpp

#####################################################################################################################################################
#  Create the reports obtained from the models (xml file) for each scheme -> Tables CSV & Tables Latex
#####################################################################################################################################################

OBJECT65      = Strings.o Node.o ListE.o ModelDetailAccuracy.o StringUtilities.o ModelDetailStatistic.o ModelTotalResults.o ModelsSummaryByLigand.o \
		ModelsReports.o DesignReportsOfModelsByScheme.o

65: $(OBJECT65)
	$(GCC) $(OBJECT65) -o bin/DesignReportsOfModelsByScheme -lz
	mv *.o obj/.

DesignReportsOfModelsByScheme.o: DesignReportsOfModelsByScheme.cpp ModelsReports.o libraries.h
	$(GCC) -c DesignReportsOfModelsByScheme.cpp

#####################################################################################################################################################
#  Check the sequence in the fasta file contains the pattern in the input file
#####################################################################################################################################################

OBJECT66      = Strings.o Node.o ListE.o SearchPrositePattern.o FastaData.o ListFastaData.o CheckPatternInFastaFile.o IdentifySequenceWithPatterns.o

66: $(OBJECT66)
	$(GCC) $(OBJECT66) -o bin/IdentifySequenceWithPatterns -lz
	mv *.o obj/.

FastaData.o: FastaData.cpp libraries.h
	$(GCC) -c FastaData.cpp

ListFastaData.o: ListFastaData.cpp FastaData.o
	$(GCC) -c ListFastaData.cpp

CheckPatternInFastaFile.o: CheckPatternInFastaFile.cpp ListFastaData.o
	$(GCC) -c CheckPatternInFastaFile.cpp

IdentifySequenceWithPatterns.o: IdentifySequenceWithPatterns.cpp CheckPatternInFastaFile.o libraries.h
	$(GCC) -c IdentifySequenceWithPatterns.cpp

#####################################################################################################################################################
#  Localize the Binding Site using the patterns obtained by anchor residues
#####################################################################################################################################################

OBJECT67      = Strings.o Node.o ListE.o PsiPredProt.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o \
		CathCLF.o CathCDDF.o CathFASTAProfile.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o            \
		PredictBindingSiteByPattern.o PatternWeight.o MethodWeighted.o StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o gnuplot.o   \
		ModelTotalResults.o ModelsSummaryByLigand.o ListBindingSitePrediction.o ListBindingSitePredictionWeighted.o LocalizeBindingSiteByPatternsWeighted.o
 
67: $(OBJECT67)
	$(GCC) $(OBJECT67) -o bin/LocalizeBindingSiteByPatternsWeighted -lz
	mv *.o obj/.
	
PatternWeight.o: PatternWeight.cpp libraries.h
	$(GCC) -c PatternWeight.cpp

MethodWeighted.o: MethodWeighted.cpp PatternWeight.o
	$(GCC) -c MethodWeighted.cpp

ListBindingSitePredictionWeighted.o: ListBindingSitePredictionWeighted.cpp ListBindingSitePrediction.o ModelsSummaryByLigand.o MethodWeighted.o PredictBindingSiteByPattern.o \
				      SearchPrositePattern.o ProcessBindingFASTAProfile.o Pratt2PatternsByCATH.o ProcessCathFASTAProfile.o gnuplot.o
	$(GCC) -c ListBindingSitePredictionWeighted.cpp

LocalizeBindingSiteByPatternsWeighted.o: LocalizeBindingSiteByPatternsWeighted.cpp ListBindingSitePredictionWeighted.o
	$(GCC) -c LocalizeBindingSiteByPatternsWeighted.cpp

#####################################################################################################################################################
#  Plot the identification probability per residue of the patterns model library to predict the binding site
#####################################################################################################################################################

OBJECT68      = Strings.o Node.o ListE.o gnuplot.o PredictBindingSiteByPattern.o PlotPredictBindingSite.o PlotResultPredictionWeightedBindingSitePos.o

68: $(OBJECT68)
	$(GCC) $(OBJECT68) -o bin/PlotResultPredictionWeightedBindingSitePos -lz
	mv *.o obj/.

PlotResultPredictionWeightedBindingSitePos.o: PlotResultPredictionWeightedBindingSitePos.cpp PlotPredictBindingSite.o gnuplot.o libraries.h
	$(GCC) -c PlotResultPredictionWeightedBindingSitePos.cpp

#####################################################################################################################################################
#  Localize the Binding Site using the patterns obtained by anchor residues
#####################################################################################################################################################

OBJECT69      = Strings.o Node.o ListE.o PsiPredProt.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o \
		CathCLF.o CathCDDF.o CathFASTAProfile.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o            \
		PredictBindingSiteByPattern.o ListBindingSitePrediction.o LocalizeBindingSiteByPatternsLengthWeighted.o

69: $(OBJECT69)
	$(GCC) $(OBJECT69) -o bin/LocalizeBindingSiteByPatternsLengthWeighted -lz
	mv *.o obj/.
	
LocalizeBindingSiteByPatternsLengthWeighted.o: LocalizeBindingSiteByPatternsLengthWeighted.cpp ListBindingSitePrediction.o
	$(GCC) -c LocalizeBindingSiteByPatternsLengthWeighted.cpp

#####################################################################################################################################################
#  Compute the covariance using a arff file for two classes (bind-intradomain; bind-interdomain)
#####################################################################################################################################################

OBJECT70      = Strings.o Node.o ListE.o ArffAttributeObject.o ArffObject.o CovarianceAttributes.o ComputePatternsCovariance.o

70: $(OBJECT70)
	$(GCC) $(OBJECT70) -o bin/ComputePatternsCovariance -lz
	mv *.o obj/.
	
ArffAttributeObject.o: ArffAttributeObject.cpp libraries.h
	$(GCC) -c ArffAttributeObject.cpp

ArffObject.o: ArffObject.cpp ArffAttributeObject.o
	$(GCC) -c ArffObject.cpp

CovarianceAttributes.o: CovarianceAttributes.cpp ArffObject.o
	$(GCC) -c CovarianceAttributes.cpp

ComputePatternsCovariance.o: ComputePatternsCovariance.cpp CovarianceAttributes.o
	$(GCC) -c ComputePatternsCovariance.cpp

#####################################################################################################################################################
#  Plotting the histogram of weights for one model specified by the scheme in the XML models summary file
#####################################################################################################################################################

OBJECT71      = Strings.o Node.o ListE.o PsiPredProt.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o \
		CathCLF.o CathCDDF.o CathFASTAProfile.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o            \
		PredictBindingSiteByPattern.o PatternWeight.o MethodWeighted.o StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o gnuplot.o   \
		ModelTotalResults.o ModelsSummaryByLigand.o ListBindingSitePrediction.o ListBindingSitePredictionWeighted.o PlotHistogramModelWeights.o
 
71: $(OBJECT71)
	$(GCC) $(OBJECT71) -o bin/PlotHistogramModelWeights -lz
	mv *.o obj/.
	
PlotHistogramModelWeights.o: PlotHistogramModelWeights.cpp ListBindingSitePredictionWeighted.o
	$(GCC) -c PlotHistogramModelWeights.cpp

#####################################################################################################################################################
#  Writing weights for one model specified by the scheme in the XML models summary file
#####################################################################################################################################################

OBJECT72      = Strings.o Node.o ListE.o PsiPredProt.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o \
		CathCLF.o CathCDDF.o CathFASTAProfile.o LigandNearResidues.o BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o            \
		PredictBindingSiteByPattern.o PatternWeight.o MethodWeighted.o StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o gnuplot.o   \
		ModelTotalResults.o ModelsSummaryByLigand.o ListBindingSitePrediction.o ListBindingSitePredictionWeighted.o OutWeightModelToFile.o
 
72: $(OBJECT72)
	$(GCC) $(OBJECT72) -o bin/OutWeightModelToFile -lz
	mv *.o obj/.
	
OutWeightModelToFile.o: OutWeightModelToFile.cpp ListBindingSitePredictionWeighted.o
	$(GCC) -c OutWeightModelToFile.cpp

#####################################################################################################################################################
#  Pipe program used to compute the patterns in the amino acid sequence of epitopes for equal ligand
#####################################################################################################################################################

OBJECT73      = Strings.o Node.o ListE.o PipeProcessGetPatterns.o

73: $(OBJECT73)
	$(GCC) $(OBJECT73) -o bin/PipeProcessGetPatterns -lz
	mv *.o obj/.

PipeProcessGetPatterns.o: PipeProcessGetPatterns.cpp libraries.h
	$(GCC) -c PipeProcessGetPatterns.cpp

#####################################################################################################################################################
#  Pipe program used to compute the patterns in the sequences (CH, PH, MT, SS) of epitopes for equal ligand
#####################################################################################################################################################

OBJECT74      = Strings.o Node.o ListE.o PipeProcessGetPatternsSSCHPHMT.o

74: $(OBJECT74)
	$(GCC) $(OBJECT74) -o bin/PipeProcessGetPatternsSSCHPHMT -lz
	mv *.o obj/.

PipeProcessGetPatternsSSCHPHMT.o: PipeProcessGetPatternsSSCHPHMT.cpp libraries.h
	$(GCC) -c PipeProcessGetPatternsSSCHPHMT.cpp

#####################################################################################################################################################
#  Pipe program used to compact the patterns in the sequences (CH, PH, MT, SS) of epitopes
#####################################################################################################################################################

OBJECT75      = Strings.o Node.o ListE.o PipeProcessCompactPattern.o

75: $(OBJECT75)
	$(GCC) $(OBJECT75) -o bin/PipeProcessCompactPattern -lz
	mv *.o obj/.

PipeProcessCompactPattern.o: PipeProcessCompactPattern.cpp libraries.h
	$(GCC) -c PipeProcessCompactPattern.cpp

#####################################################################################################################################################
#  Refinement of the binding site position prediction using different models
#####################################################################################################################################################

OBJECT76      = Strings.o Node.o ListE.o PredictBindingSiteByPattern.o BindingSitePredictionData.o BindingSitePredictionRefinement.o RefineBindingSiteByPatterns.o

76: $(OBJECT76)
	$(GCC) $(OBJECT76) -o bin/RefineBindingSiteByPatterns -lz -lm
	mv *.o obj/.

BindingSitePredictionData.o: BindingSitePredictionData.cpp PredictBindingSiteByPattern.o
	$(GCC) -c BindingSitePredictionData.cpp

BindingSitePredictionRefinement.o: BindingSitePredictionRefinement.cpp PredictBindingSiteByPattern.o
	$(GCC) -c BindingSitePredictionRefinement.cpp

RefineBindingSiteByPatterns.o: RefineBindingSiteByPatterns.cpp BindingSitePredictionRefinement.o libraries.h
	$(GCC) -c RefineBindingSiteByPatterns.cpp

#####################################################################################################################################################
#  Evaluating the domains instance from the ARFF file using a XML model file (Output - scalar value resulting in the model evaluation)
#####################################################################################################################################################

OBJECT77      = Strings.o Node.o ListE.o InstanceModelEvaluation.o ArffAttributeObject.o ArffObject.o gnuplot.o  CathCLF.o CathCDDF.o PsiPredProt.o          \
		CathFASTAProfile.o ProcessCathFASTAProfile.o PatternRecord.o PatternMatches.o Pratt2Patterns.o Pratt2PatternsByCATH.o LigandNearResidues.o   \
		BindingInfo.o ProcessBindingFASTAProfile.o SearchPrositePattern.o PredictBindingSiteByPattern.o PatternWeight.o MethodWeighted.o             \
		StringUtilities.o ModelDetailAccuracy.o ModelDetailStatistic.o ModelTotalResults.o  ModelsSummaryByLigand.o ListBindingSitePrediction.o      \
		ListBindingSitePredictionWeighted.o DatasetModelEvaluation.o  EvaluateInstanceByModelWeight.o
	
77: $(OBJECT77)
	$(GCC) $(OBJECT77) -o bin/EvaluateInstanceByModelWeight -lz -lm
	mv *.o obj/.

InstanceModelEvaluation.o: InstanceModelEvaluation.cpp libraries.h
	$(GCC) -c InstanceModelEvaluation.cpp

DatasetModelEvaluation.o: DatasetModelEvaluation.cpp InstanceModelEvaluation.o ListBindingSitePredictionWeighted.o ArffObject.o
	$(GCC) -c DatasetModelEvaluation.cpp

EvaluateInstanceByModelWeight.o: EvaluateInstanceByModelWeight.cpp DatasetModelEvaluation.o
	$(GCC) -c EvaluateInstanceByModelWeight.cpp

#####################################################################################################################################################
# All
#####################################################################################################################################################

all:	$(OBJECT1)  $(OBJECT2)  $(OBJECT3)  $(OBJECT4)  $(OBJECT5)  $(OBJECT6)  $(OBJECT7)  \
	$(OBJECT8)  $(OBJECT9)  $(OBJECT10) $(OBJECT11) $(OBJECT12) $(OBJECT13) $(OBJECT14) \
	$(OBJECT15) $(OBJECT16) $(OBJECT17) $(OBJECT18) $(OBJECT19) $(OBJECT20) $(OBJECT21) \
	$(OBJECT22) $(OBJECT23) $(OBJECT24) $(OBJECT25) $(OBJECT26) $(OBJECT27) $(OBJECT28) \
	$(OBJECT29) $(OBJECT30) $(OBJECT31) $(OBJECT32) $(OBJECT33) $(OBJECT34) $(OBJECT35) \
	$(OBJECT36) $(OBJECT37) $(OBJECT38) $(OBJECT39) $(OBJECT40) $(OBJECT41) $(OBJECT42) \
	$(OBJECT43) $(OBJECT44) $(OBJECT45) $(OBJECT46) $(OBJECT47) $(OBJECT48) $(OBJECT49) \
	$(OBJECT50) $(OBJECT51) $(OBJECT52) $(OBJECT53) $(OBJECT54) $(OBJECT55) $(OBJECT56) \
	$(OBJECT57) $(OBJECT58) $(OBJECT59) $(OBJECT60) $(OBJECT61) $(OBJECT62) $(OBJECT63) \
	$(OBJECT64) $(OBJECT65) $(OBJECT66) $(OBJECT67) $(OBJECT68) $(OBJECT69) $(OBJECT70) \
	$(OBJECT71) $(OBJECT72) $(OBJECT73) $(OBJECT74) $(OBJECT75) $(OBJECT76) $(OBJECT77) 

	$(GCC) $(OBJECT1)  -o bin/ConstructFastaCATHComplete -lz
	$(GCC) $(OBJECT2)  -o bin/PredictSecondaryStructure -lz
	$(GCC) $(OBJECT3)  -o bin/DeleteRepeatSequences -lz
	$(GCC) $(OBJECT4)  -o bin/SplitFASTAProfileFile -lz
	$(GCC) $(OBJECT5)  -o bin/FindNotCompletedPredictions -lz
	$(GCC) $(OBJECT6)  -o bin/LINGOsim
	$(GCC) $(OBJECT7)  -o bin/FillChemicalPhysicalClassification -lz
	$(GCC) $(OBJECT8)  -o bin/ExpandRepeatSequenceFASTAProfile -lz
	$(GCC) $(OBJECT9)  -o bin/OutInfoFromPROFILEInFASTAFormat -lz
	$(GCC) $(OBJECT10) -o bin/CreatePDBAtomDomain -lz
	$(GCC) $(OBJECT11) -o bin/CreatePDBHetAtmDomain -lz
	$(GCC) $(OBJECT12) -o bin/RecoverInteractionInfoAtomHeAtm -lz
	$(GCC) $(OBJECT13) -o bin/SelectDomainWithLigandInLigandFASTAProfile -lz
	$(GCC) $(OBJECT14) -o bin/FilterResiduesAppearAsLigandInLigandFASTAProfile -lz
	$(GCC) $(OBJECT15) -o bin/ExtractSeparatedBindingDataInterAndIntraDomains -lz
	$(GCC) $(OBJECT16) -o bin/SplitInFilesBindingDataByLigand -lz
	$(GCC) $(OBJECT17) -o bin/GetContinuousDataForBindingRegion -lz
	$(GCC) $(OBJECT18) -o bin/GetContinuousSeqForBindingRegion -lz
	$(GCC) $(OBJECT19) -o bin/GetContinuousSSForBindingRegion -lz
	$(GCC) $(OBJECT20) -o bin/GetContinuousCHForBindingRegion -lz
	$(GCC) $(OBJECT21) -o bin/GetContinuousPHForBindingRegion -lz
	$(GCC) $(OBJECT22) -o bin/GetContinuousMTForBindingRegion -lz
	$(GCC) $(OBJECT23) -o bin/GetContinuousAllForBindingRegion -lz
	$(GCC) $(OBJECT24) -o bin/GetFrequencyOfResidues -lz
	$(GCC) $(OBJECT25) -o bin/GetFrequencyOfLength -lz
	$(GCC) $(OBJECT26) -o bin/DeleteInLigandFASTAProfileDuplication -lz
	$(GCC) $(OBJECT27) -o bin/CreateSeqFASTAComplete -lz
	$(GCC) $(OBJECT28) -o bin/CreateSeqFASTACompleteWithHeaders -lz
	$(GCC) $(OBJECT29) -o bin/CreateSeqFASTAInitialPosCompleteUsingHeaders -lz
	$(GCC) $(OBJECT30) -o bin/GetExtendedAllForBindingRegion -lz
	$(GCC) $(OBJECT31) -o bin/ExtractLigandPDBFileByList -lz
	$(GCC) $(OBJECT32) -o bin/ComputeLingoSimLigandEpitope -lz
	$(GCC) $(OBJECT33) -o bin/PlotEpitopeAligmentUsingLSIMMatrix -lz
	$(GCC) $(OBJECT34) -o bin/PlotAverageEpitopeAligmentUsingLSIMMatrix -lz
	$(GCC) $(OBJECT35) -o bin/ExtractPDBOnlyAlphaBetaCarbons -lz
	$(GCC) $(OBJECT36) -o bin/PipeProcessGetPatternsFromCATH -lz
	$(GCC) $(OBJECT37) -o bin/CompactPatternsFiles -lz
	$(GCC) $(OBJECT38) -o bin/GetCondProbabilityPrattPattern -lz
	$(GCC) $(OBJECT39) -o bin/SearchPrositePatternInSequence -lz
	$(GCC) $(OBJECT40) -o bin/ComputeProbabilityOfPatternIdentifyBS -lz
	$(GCC) $(OBJECT41) -o bin/CreateARFFFileWithCompactPatternFile -lz
	$(GCC) $(OBJECT42) -o bin/CreateARFFNominalFileWithCompactPatternFile -lz
	$(GCC) $(OBJECT43) -o bin/GetCommonLINGOsForEpitopes -lz
	$(GCC) $(OBJECT44) -o bin/HowOftenCombinationLINGOSEpitopes -lz
	$(GCC) $(OBJECT45) -o bin/PipeProcessGetPatternsFromCATHSSCHPHMT -lz
	$(GCC) $(OBJECT46) -o bin/PipeProcessCompactPatternFiles -lz
	$(GCC) $(OBJECT47) -o bin/PipeProcessComputeSpecificityOfPattern -lz
	$(GCC) $(OBJECT48) -o bin/PlotPatternConditionalProbability -lz
	$(GCC) $(OBJECT49) -o bin/CreateARFFBinaryFileWithCompactPatternFile -lz
	$(GCC) $(OBJECT50) -o bin/ScheduleQueueForkProcess
	$(GCC) $(OBJECT51) -o bin/LoadAttributesFromWekaFile
	$(GCC) $(OBJECT52) -o bin/CreateNewClass
	$(GCC) $(OBJECT53) -o bin/StoreSelectedFeatureTogether
	$(GCC) $(OBJECT54) -o bin/CreateCommandWekaRemoveAttr
	$(GCC) $(OBJECT55) -o bin/LoadModelResult
	$(GCC) $(OBJECT56) -o bin/SplitLigandFASTAProfileInto2Sets -lz
	$(GCC) $(OBJECT57) -o bin/AddModelResult 
	$(GCC) $(OBJECT58) -o bin/CreateARFFFileWithCompactPatternCombinedFile -lz
	$(GCC) $(OBJECT59) -o bin/CreateARFFFileWithCompactPatternCompleteFile -lz
	$(GCC) $(OBJECT60) -o bin/CreateARFFFileWithCompactPatternCompleteCombinedFile -lz
	$(GCC) $(OBJECT61) -o bin/ComputePatternProfileSimilarity -lz
	$(GCC) $(OBJECT62) -o bin/LocalizeBindingSiteByPatterns -lz
	$(GCC) $(OBJECT63) -o bin/PlotResultPredictionBindingSitePos -lz
	$(GCC) $(OBJECT64) -o bin/DesignReportsOfModelsByLigand -lz
	$(GCC) $(OBJECT65) -o bin/DesignReportsOfModelsByScheme -lz
	$(GCC) $(OBJECT66) -o bin/IdentifySequenceWithPatterns -lz
	$(GCC) $(OBJECT67) -o bin/LocalizeBindingSiteByPatternsWeighted -lz
	$(GCC) $(OBJECT68) -o bin/PlotResultPredictionWeightedBindingSitePos -lz
	$(GCC) $(OBJECT69) -o bin/LocalizeBindingSiteByPatternsLengthWeighted -lz
	$(GCC) $(OBJECT70) -o bin/ComputePatternsCovariance -lz
	$(GCC) $(OBJECT71) -o bin/PlotHistogramModelWeights -lz
	$(GCC) $(OBJECT72) -o bin/OutWeightModelToFile -lz
	$(GCC) $(OBJECT73) -o bin/PipeProcessGetPatterns -lz
	$(GCC) $(OBJECT74) -o bin/PipeProcessGetPatternsSSCHPHMT -lz
	$(GCC) $(OBJECT75) -o bin/PipeProcessCompactPattern -lz
	$(GCC) $(OBJECT76) -o bin/RefineBindingSiteByPatterns -lz -lm
	$(GCC) $(OBJECT77) -o bin/EvaluateInstanceByModelWeight -lz -lm
	mv *.o obj/.

#####################################################################################################################################################

cleanObj:
	rm obj/*.o

#####################################################################################################################################################

clean:
	rm obj/*.o
	rm bin/ConstructFastaCATHComplete bin/PredictSecondaryStructure bin/DeleteRepeatSequences bin/SplitFASTAProfileFile bin/FindNotCompletedPredictions 
	rm bin/LINGOsim bin/FillChemicalPhysicalClassification bin/ExpandRepeatSequenceFASTAProfile bin/OutInfoFromPROFILEInFASTAFormat 
	rm bin/CreatePDBAtomDomain bin/CreatePDBHetAtmDomain bin/RecoverInteractionInfoAtomHeAtm bin/SelectDomainWithLigandInLigandFASTAProfile
	rm bin/FilterResiduesAppearAsLigandInLigandFASTAProfile bin/ExtractSeparatedBindingDataInterAndIntraDomains
	rm bin/SplitInFilesBindingDataByLigand bin/GetContinuousDataForBindingRegion bin/GetContinuousSeqForBindingRegion
	rm bin/GetContinuousSSForBindingRegion bin/GetContinuousCHForBindingRegion bin/GetContinuousPHForBindingRegion bin/GetContinuousMTForBindingRegion 
	rm bin/GetFrequencyOfResidues bin/GetFrequencyOfLength bin/GetContinuousAllForBindingRegion bin/DeleteInLigandFASTAProfileDuplication
	rm bin/CreateSeqFASTAComplete bin/CreateSeqFASTACompleteWithHeaders bin/GetExtendedAllForBindingRegion bin/CreateSeqFASTAInitialPosCompleteUsingHeaders
	rm bin/ExtractLigandPDBFileByList bin/ComputeLingoSimLigandEpitope bin/PlotEpitopeAligmentUsingLSIMMatrix bin/PlotAverageEpitopeAligmentUsingLSIMMatrix
	rm bin/ExtractPDBOnlyAlphaBetaCarbons bin/PipeProcessGetPatternsFromCATH bin/CompactPatternsFiles bin/GetCondProbabilityPrattPattern
	rm bin/SearchPrositePatternInSequence bin/ComputeProbabilityOfPatternIdentifyBS bin/CreateARFFFileWithCompactPatternFile
	rm bin/CreateARFFNominalFileWithCompactPatternFile bin/GetCommonLINGOsForEpitopes bin/HowOftenCombinationLINGOSEpitopes
	rm bin/PipeProcessGetPatternsFromCATHSSCHPHMT bin/PipeProcessCompactPatternFiles bin/PipeProcessComputeSpecificityOfPattern
	rm bin/PlotPatternConditionalProbability bin/CreateARFFBinaryFileWithCompactPatternFile bin/ScheduleQueueForkProcess bin/LoadAttributesFromWekaFile
	rm bin/CreateNewClass bin/StoreSelectedFeatureTogether bin/CreateCommandWekaRemoveAttr bin/LoadModelResult bin/SplitLigandFASTAProfileInto2Sets
	rm bin/AddModelResult bin/CreateARFFFileWithCompactPatternCombinedFile bin/CreateARFFFileWithCompactPatternCompleteFile
	rm bin/CreateARFFFileWithCompactPatternCompleteCombinedFile bin/ComputePatternProfileSimilarity bin/LocalizeBindingSiteByPatterns
	rm bin/PlotResultPredictionBindingSitePos bin/DesignReportsOfModelsByLigand bin/DesignReportsOfModelsByScheme bin/IdentifySequenceWithPatterns
	rm bin/LocalizeBindingSiteByPatternsWeighted bin/PlotResultPredictionWeightedBindingSitePos bin/LocalizeBindingSiteByPatternsLengthWeighted
	rm bin/ComputePatternsCovariance bin/PlotHistogramModelWeights bin/PipeProcessGetPatterns bin/PipeProcessGetPatternsSSCHPHMT bin/PipeProcessCompactPattern
	rm bin/RefineBindingSiteByPatterns bin/EvaluateInstanceByModelWeight
 
#####################################################################################################################################################
# End
#####################################################################################################################################################


